<HTML><HEAD><TITLE>open_receiver_init(+SendPos, +SendStruct, +InitialMessages, -InitialMessagesTail, +ReceivePos, +ReceiveStruct)</TITLE>
</HEAD><BODY>[ <A HREF="index.html">library(notify_ports)</A> | <A HREF="../../index.html">Reference Manual</A> | <A HREF="../../fullindex.html">Alphabetic Index</A> ]
<H1>open_receiver_init(+SendPos, +SendStruct, +InitialMessages, -InitialMessagesTail, +ReceivePos, +ReceiveStruct)</H1>
Create a receiver for a given notification sender
<DL>
<DT><EM>SendPos</EM></DT>
<DD>positive integer, the send port's field number in SendStruct
</DD>
<DT><EM>SendStruct</EM></DT>
<DD>a structure whose SendPos-th field is a send port
</DD>
<DT><EM>InitialMessages</EM></DT>
<DD>the head of a list of initial messages
</DD>
<DT><EM>InitialMessagesTail</EM></DT>
<DD>the tail of the list of initial messages
</DD>
<DT><EM>ReceivePos</EM></DT>
<DD>positive integer, the send port's field number in ReceiveStruct
</DD>
<DT><EM>ReceiveStruct</EM></DT>
<DD>a structure with free field ReceivePos
</DD>
</DL>
<H2>Description</H2>

    SendPos and SendStruct identify a send port.  This predicate
    creates a receive port listening to messages sent via the
    specified send port.  The new receive port will receive all
    messages that are sent via the send port after the receiver has
    been opened.  Messages that were sent before the receiver has been
    opened will not be received by this receiver.
    <P>
    The receiver will be installed in field ReceivePos of the structure
    ReceiveStruct.
    <P>
    In addition to open_receiver/4, there is a difference list pair
    (InitialMessages and InitialMessagesTail) which can be used to
    fake a sequence of initial message that will be received on
    the receive port without actually having been sent from the
    associated send port. This feature can be used to bring the
    message receiving agent into a particular starting state.
    
<H2>See Also</H2>
<A HREF="../../lib/notify_ports/open_receiver-4.html">open_receiver / 4</A>
</BODY></HTML>
